
var strDom = [];

/* 添加进endId菜单 */
function add_YesMenu_nodes(row,startId,endId){
	strDom = [];
	/* 获取（菜单endId）里面的所有菜单数据 */
	var nodes  =$('#'+endId+'').treegrid('getChildren');
	
	/* row是未分配菜单中，已经选择的节点数据，nodes是未分配菜单里面 的所有数据集合 */
	
	 var noDom=[];	
		noDom = fn_get_parent_shuzu(row,nodes,startId);

		for(i=noDom.length-1;i>=0;i--){
		
			
			$('#'+endId+'').treegrid('append',{
				parent: noDom[i].menuParentId,  
				data: [{
					id: noDom[i].id,
					text: noDom[i].text,
					menuParentId:noDom[i].menuParentId
				}]
			});	     
		}
		
		/* 循环判断 （子节点数据） 在 （已分配菜单）节点里面 存在不存在 ，
		如果不存在  就拼接到   menuidstr 字符串
		因为这是要添加进（已分配菜单的）
		*/
		
		var childnoDom=[];
		var childrenDom = $('#'+startId+'').treegrid('getChildren', row.id);
		
		$.each(childrenDom,function(i,cm){
			 if(!fn_check_menu_isexit(nodes,cm['id'])){ 
				childnoDom.push(cm);
			 } 
		});
		for(i=0;i<childnoDom.length;i++){
			
			$('#'+endId+'').treegrid('append',{
				parent: childnoDom[i].menuParentId,  
				data: [{
					id: childnoDom[i].id,
					text: childnoDom[i].text,
					menuParentId:childnoDom[i].menuParentId
				}]
			});	     
		}
}


/* 移除（菜单startid） 要添加进 （菜单endid）节点 */

function remove_NoMneu_nodes(row,startId){
	/* row是当前（已分配菜单的）节点数据，然后获取 其父节点 */
	var parent = $('#'+startId+'').treegrid('getParent', row.id);
	/* （已选中菜单）当前选中要删除节点的 id   添加进要删除的id的字符串里面 */
	var array =[];
	array.push(row);
	if(parent){
		/* 查询到当前菜单的 父节点 。 如果（父节点）下面的（子集合）的长度是1,
		（就重复查询上一个节点的数据，直到（根目录），根目录  查询不到父节点了，也就进不来这个方法了。）
		那就是说，当前节点是最后一个数据，那么就把这个父节点也删除掉，
		因为父节点，里面已经没有了数据。
		*/
		var size = parent.children.length;
		if(size==1){
			var resultPar=[];
			resultPar =remove_NoMneu_nodes(parent,startId);
			for(i=0;i<resultPar.length;i++){
				if(resultPar[i]==null){
					continue;
				}
				array.push(resultPar[i]);
			}
			
		}
	}
	return array;
}


/* 获取符合添加要求的  父级菜单数组 */
function fn_get_parent_shuzu(row,nodes,startId){
	var parent =[]; 
	fn_get_noRoleDg_parent_shuzu(row,startId);//获取其父节点数组
	parent=strDom;
	strDom = [];
	var menuidstr=[];
	for(i=0;i<parent.length;i++){
		if(parent[i]==null){
			break;
		}
		if(!fn_check_menu_isexit(nodes,parent[i].id)){ 
			menuidstr.push(parent[i]);
		 }     
	}
	return menuidstr;
	
}

/* 获取父菜单数组 */
function fn_get_noRoleDg_parent_shuzu(row,startId){
	/* row是当前（未分配菜单的）节点数据，然后获取 其父节点 */
	var parent = $('#'+startId+'').treegrid('getParent', row.id);
	strDom.push(row);
	if(parent){
		strDom.push(fn_get_noRoleDg_parent_shuzu(parent,startId));
	}
}


/* 判断存在不存在 ,获取到的父菜单或子菜单数据，遍历判断下，是不是在 (已分配的菜单) 集合里面已经存在了*/
function fn_check_menu_isexit(nodes,menuId){
	var isexit = false;
	$.each(nodes,function(i,cm){
		if(!isexit){
		   	if(cm['id']==menuId){
		   		isexit=true;
		   		return true;
		   	}
		}else{
			return true;
		}
	});
	return isexit;
}